As integrated circuit platforms become more and more complex and incorporate more and more functionality into a monolithic solution, there is an increasing need for non-volatile memory for the purpose of storing configuration information and the such. Typically, in the past, this functionality was achieved with the use of external non-volatile memory such as EEPROM. Unfortunately, this required a large number of pins to allow interfacing therewith. With the increased functionality, the additional pins become a commodity and the removal of such pins is desirable. As such, what has occurred is the incorporation of on-chip memory such as FLASH. This memory is useful for storing program instructions that will not be erased when power is removed. However, this memory is not useful for the normal operational aspects of the chip, wherein frequent Read and Write operations are required. For this purpose, SRAM is used, which is a volatile memory. This SRAM memory is faster and has substantially infinite reads and writes, whereas FLASH inherently has a limited number of reads and writes associated therewith from the standpoint that it “wears out” after a finite number of bit storage operations. Therefore, FLASH memory is limited to “program memory” for storing program instructions and configuration information whereas SRAM memory is used for data.
The problem with embedding FLASH into an integrated circuit is that the use of FLASH memory in a particular integrated circuit process requires a substantial increase in the number of process steps, thus increasing the complexity of the process. Thus, a wafer manufactured in a FLASH compatible process might contain five or six additional steps of processing over that for the underlying functional circuitry. This could increase the cost of the wafer by as much as 20%, not to mention the fact that the embedded FLASH memory will increase the size of the chip, thus further increasing the cost of the chip.
A less complex process is that of utilizing one time programmable memory (OTP). The use of the OTP requires less or no additional layers to realize the memory, but this also has a disadvantage in that it can only be programmed one time, after which it is permanently programmed and there is no possibility for chip reuse unless using high energy UV light source which is impractical from user point of view.